package com.fire.chat.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.fire.chat.entity.bo.SysMenuBO;
import com.fire.chat.entity.po.SysMenu;
import com.fire.chat.entity.vo.SysMenuVO;

import java.util.List;

/**
 * 菜单资源表 Service 接口
 * @version: 1.0
 * @author: xiejiarong
 * @date 2020-11-04
 */
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 
     * @param  menu 菜单
     * @return void
     * @author xiejr
     * @description: 编写菜单
     * @date 2020/11/4 17:09
     */
    
    void addMenu(SysMenuBO menu);
    
    /**
     * @return java.util.List<cn.com.hwqh.entity.vo.SysMenuVO>
     * @author xiejr
     * @description: 查询菜单树形结构
     * @date 2020/11/5 10:34
     */
    List<SysMenuVO> queryMenuTree();


    /**
     *
     * @param  userId 用户ID
     * @return java.util.List<cn.com.hwqh.entity.vo.SysMenuVO>
     * @author xiejr
     * @description: 根据用户Id获取对应的权限结构
     * @date 2020/11/5 15:10
     */

    List<SysMenuVO> queryMenuByUserId(Long userId);

    /**
     *
     * @param  id 菜单id
     * @return void
     * @author xiejr
     * @description: 根据id逻辑删除菜单，可能存在级联删除情况，如果存在要删除的菜单存在子节点，需要前端提示是否全部删除
     * @date 2020/11/6 15:51
     */

    void deleteById(String id);

}
